package com.chenfan.mcn.job;

import com.chenfan.mcn.service.CompanyTargetService;
import com.chenfan.mcn.service.CustomerTargetService;
import com.chenfan.mcn.service.DepartmentTargetService;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * @author: tangwei
 * Date:     2021/4/20 14:12
 * Description: 公司目标、部门目标、重点客户目标-季度销售额更新落库
 * 当前时间所在季度时间范围过去，则目标值不再更新，例如2021Q1的目标达成率，在2021年3月31号晚上23:59:59秒更新落库，不再更新。
 * 每季度结束（如Q1,3月31日23:59:59），取收入合同的创建时间在该季度时间范围内，
 * 单据状态为【审批通过、审批中】状态的所有收入合同的【商务确认合同金额】总和，作为季度销售额保存落库
 * 每季度末更新，即一年更新四次
 */
@Component
public class QuarterSalesJob {

    @Autowired
    private CompanyTargetService companyTargetService;

    @Autowired
    private DepartmentTargetService departmentTargetService;

    @Autowired
    private CustomerTargetService customerTargetService;

    @XxlJob(value = "updateQuarterSales")
    public ReturnT<String> quarterSalesJob(String param) {
        companyTargetService.updateQuarterSales();
        departmentTargetService.updateQuarterSales();
        customerTargetService.updateQuarterSales();
        return ReturnT.SUCCESS;
    }
}